Device Wireless Adapters (DWA) and Host Wireless Adapters (HWA) are used to provide wireless capabilities for Universal Serial Bus (USB) devices and hosts respectively which were not originally designed to support wireless. For example, a DWA is inserted into a USB port or connector of a USB device (i.e., slave side) and information is exchanged using a wireless transceiver included in the DWA. It would be desirable if techniques to improve the performance of systems that use HWAs and/or DWA were developed. In one example HWA-DWA system, the USB host is a computer and the USB device is a printer and performance improvements to the system would permit large documents to be printed faster.
The Wireless USB specification requires compliant HWA and DWA devices to implement the concept of a ‘Remote Pipe’ (RPIPE). An RPIPE is basically a configurable buffer used to hold outgoing and incoming data while the wireless-link protocol ensures all the data has been successfully sent to the other side. Standard messages are defined to control the flow of data into and out of the RPIPEs. In a typical implementation, a ‘device driver’ (i.e., a software program running on the host side) will send the required messages. In the specification, each transfer of an RPIPE is accomplished by 4 messages: (1) Transfer Request, (2) Transfer Notification, (3) Transfer Result and (4) Data. For example, if a PC (or some other USB host) wants to get 16 Kbytes from a remote device connected to a DWA, it will send a transfer request to tell the DWA to fill an RPIPE (previously configured to deal with data to be sent to the host—referred to as IN data). The DWA will attempt to do so, and when it has completed (either successfully or not) it will send a Transfer Notification message. This will trigger the device driver to request the Transfer Result—which tells the driver the results of the attempt to fill the RPIPE (e.g., how much data was fetched, etc). After the Transfer Result, the device driver will fetch the data stored in the RPIPE. The specification also allows an RPIPE buffer space to be split among several concurrent (or overlapping in-time) transfers to reduce the overhead associated with the 4-message protocol. It would be useful to develop techniques that improve data transfer throughput while still complying to the Wireless USB specification.